package com.vca.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.vca.common.model.lineUp.VcaLineUp;
import com.vca.common.request.PageParamRequest;
import com.vca.common.response.LineUpResponse;
import com.vca.common.vo.LineUpVo;

/**
 * <p>
 * 排队登记表 服务类
 * </p>
 *
 * @author chenBing
 * @since 2022-11-24
 */
public interface VcaLineUpService extends IService<VcaLineUp> {

    /**
     * @Description:排队管理列表
     * @Author: chenBing
     * @Date: 2022/11/25
     */
    PageInfo<LineUpVo> getLineUps(String keyword, Integer type, Integer noticeStatus, String dateLimit, PageParamRequest request);

    /**
     * @Description:通知
     * @Author: chenBing
     * @Date: 2022/11/25
     */
    boolean notice(String lineUpIds);

    /**
     *@Description:排队登记（不选择排期）
     *@author chenbing
     *@date 2022/11/28 10:10
     */
    boolean lineUp(Long mainId, Integer type);

    /**
     *@Description:候补名单列表
     *@author:chenbing
     *@date 2022/12/21 16:07
     */
    PageInfo<LineUpResponse> getList(String language,PageParamRequest pageParamRequest);

    /**
     *@Description:不再显示
     *@author:chenbing
     *@date 2022/12/21 17:28
     */
    Boolean disable(Integer lineUpId);

    /**
     *@Description:排队状态通知生成模板消息
     *@author:chenbing
     *@date 2022/12/30 13:32
     */
    void generateLineUpNotice();

    /**
     *@Description:移除排队记录
     *@author:chenbing
     *@date 2023/1/3 16:49
     */
    boolean removeLineUpById(Integer lineUpId);

    void initLineUp();

    void noticeByMainId(Long mainId, Integer type);
}
